package com.sneaker.shower.entity.domain.order.discount;

import com.baomidou.mybatisplus.annotation.TableName;
import com.sneaker.shower.entity.domain.BaseDomain;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author Hechangjian
 * @version 1.0
 * @className CouponDO
 * @date 2019/11/25 17:51
 * @description 优惠券DO
 * @program bath
 */
@Data
@TableName("coupon")
public class CouponDO extends BaseDomain {
    /**
     * 优惠券编号
     */
    private String couponNo;

    /**
     * 优惠券类型 1，免单券， 2折扣券，3现金券
     */
    private Integer type;

    /**
     * 优惠金额 type = 3 时有值
     */
    private BigDecimal discountFee;

    /**
     * 优惠折扣 type = 2 时有值
     */
    private BigDecimal discount;

    /**
     * 是否使用阈值
     */
    private Boolean useThreshold;

    /**
     * useThreshold = true时有用
     * 折扣阈值 订单金额满多少使用
     */
    private BigDecimal amountThreshold;

    /**
     * 是否可用
     */
    private Boolean isEnable;

    /**
     * 是否已被使用
     */
    private Boolean isUsed;

    private LocalDateTime expiredTime;

    public Boolean checkStatus() {
        return !this.isUsed && this.isEnable && !LocalDateTime.now().isAfter(this.expiredTime);
    }
}
